# 解决登录接口返回“验证码错误”的问题
# 思路：因为tpshop商城的登录操作其实是包含“发送验证码”和“登录”两个不同的接口
# 我们只需要在请求登录接口之前，先请求“发送验证码”接口，拿到验证码接口返回的
# cookie信息之后，再次请求登录接口即可

# # 导包
# import requests
# # 发送接口请求
# # 请求验证码接口，获取验证码接口返回的cookie信息，给登录接口使用
# resp1 = requests.get(url="http://127.0.0.1/index.php?m=Home&c=User&a=verify&r=0.6300492784468256")
# # 获取验证码接口返回的cookie
# my_cookie = resp1.cookies
# # 发送登录请求（带着上一步产生的cookie）
# resp2 = requests.post(url="http://127.0.0.1/index.php?m=Home&c=User&a=do_login&t=0.7275613504491629",
#               headers={"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"},
#               data={"username":"13800000000","password":"123456","verify_code":"8888"},
#               cookies=my_cookie)
# # 获取响应信息
# print(resp2.json())

# 导包
import requests
# 发送接口请求
sess = requests.Session() #注意小括号不要忘掉
# 使用上一步创建的session对象发送获取验证码的请求
resp1 = sess.get(url="http://127.0.0.1/index.php?m=Home&c=User&a=verify&r=0.6300492784468256")
# 使用同一个session对象发送登录请求
resp2 = sess.post(url="http://127.0.0.1/index.php?m=Home&c=User&a=do_login&t=0.7275613504491629",
              headers={"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"},
              data={"username":"13800000000","password":"123456","verify_code":"8888"})
# 获取响应结果
print(resp2.json())
print(resp2.text)
print(resp2.status_code)
print(resp2.cookies)
print(resp2.url)
print(resp2.headers)
print(resp2.encoding)

